1. Field of the Invention
Embodiments relate generally to modeling SQL-based data transformations.
2. Background
SQL (structured query language) is a computer language commonly used to manage data in database management systems (DBMSs). With the growth in popularity and usage of DBMSs, SQL has also grown in popularity. Database vendors and other programmers, seeking greater functionality and customization from SQL by which they can better manage their data, have introduced a variety of new SQL implementations, whereby the various SQL implementations may include not only features that vary from one implementation to the next, but also features that are common amongst several or all of the implementations but may be implemented differently in different implementations. As a result, data management in a DBMS often requires specific knowledge of not only the data being managed, but also which SQL implementation is being used on the DBMS, specific details as to which features are available within the implemented SQL and how those features are implemented.
As part of its data management capability, SQL may be used to perform data transformations, whereby data is converted from a source data format into destination data or a destination data format across one or more databases or DBMSs. A data transformation often takes place in two steps, a data mapping step during which data elements from a source are mapped to a target destination, and a code generation step during which code to perform the data transformation is written.
Designing and performing data transformations in and/or amongst DBMSs becomes difficult however, because, as just referenced, even if data is being transferred within a system that shares the same SQL implementation on both the source data and the target destination, specific knowledge of which features are available and how they are implemented is required to successfully design and perform any data transformation. Further, the tasks of designing and performing a data transformation become even more difficult if the specific SQL implementation being used on a system is not known.